/*
package demo7;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;

*/
/*
* Spring容器管理一个对象时，会在特定的生命周期过程中回调当前类中的方法，使得当前类实例做对应操作
* 例如：
* 当Spring容器创建当前类的一个实例后，可以回调当前类的方法告知这一行为
* 又或者对象即将被销毁时回调
* *//*

@Component
public class Person {
    private String name;

    public Person(){
        //构造器实际上是一个对象生命周期第一个被调用的函数
        System.out.println("1:Person对象的构造器调用了");
    }

    public String getName() {
        return name;
    }

    //通过@Value直接在Spring创建该对象时,利用属性对应的set方法为属性值初始化
    @Value("张三")
    public void setName(String name) {
        this.name = name;
        System.out.println("2:name属性的set方法:setName()被调用了");
    }
    */
/*
    * @PostConstruct注解是Spring容器在创建并初始化当前对象后进行回调被该注解标注的方法
    * 因此,如果当前对象需要感知何时被Spring容器初始化完毕则可以任意定义一个方法然后使用该注解即可
    * *//*

    @PostConstruct
    public void init(){
        System.out.println("3:Soring容器初始化Person对象了,调用了@PostConstruct标注的方法");
    }
    */
/*
    * 当Spring容器被关闭时,容器会释放所有被管理的对象,如果该对象定义了一个方法并
    * 使用了@PreDestroy注解,那么Spring这时会调用该方法通知该对象它即将被容器销毁
    * *//*

    @PreDestroy
    public void destroy(){
        System.out.println("Soring容器要将当前Person对象销毁了,调用了@PreDestroy标注的方法");
    }
}
*/
